"""配置文件，存储所有可配置的参数"""

# 网格参数
GRID_PARAMS = {
    'n_axial': 20,          # 轴向网格数
    'n_channels': 4,        # 子通道数
}

# 几何参数
GEOMETRY_PARAMS = {
    'channel_length': 3.6576,     # 通道长度 (m)
    'channel_width': 0.0127,      # 通道宽度 (m)
    'channel_gap': 0.003175,      # 子通道间隙 (m)
    'hydraulic_diameter': 0.0127,  # 水力直径 (m)
    'flow_area': 0.00016129,      # 流通面积 (m²)
    'wetted_perimeter': 0.0508,   # 湿周 (m)
    'heated_perimeter': 0.0508,   # 加热周长 (m)
    'gap_width': 0.003175,        # 间隙宽度 (m)
    'mixing_length': 0.0127,      # 混合长度 (m)
}

# 物理参数
PHYSICAL_PARAMS = {
    'gravity': 9.81,        # 重力加速度 (m/s²)
    'surface_tension': 0.059,  # 表面张力 (N/m)
    'reference_pressure': 15.5e6,  # 参考压力 (Pa)
    'reference_temperature': 598.15,  # 参考温度 (K)
}

# 初始条件
INITIAL_CONDITIONS = {
    'inlet_pressure': 15.5e6,      # 入口压力 (Pa)
    'inlet_temperature': 598.15,   # 入口温度 (K)
    'inlet_mass_flux': 3460.0,     # 入口质量流量 (kg/m²s)
    'inlet_void_fraction': 0.0,    # 入口空泡分数
    'wall_temperature': 603.15,    # 壁面温度 (K)
}

# 数值方法参数
NUMERICAL_PARAMS = {
    'time_step': 0.001,     # 时间步长 (s)
    'total_time': 10.0,     # 总计算时间 (s)
    'max_iterations': 1000,  # 最大迭代次数
    'convergence_tolerance': 1e-6,  # 收敛判据
    'relaxation_factor': 0.8,       # 松弛因子
    'gmres_tolerance': 1e-8,        # GMRES求解器容差
    'gmres_max_iter': 100,          # GMRES最大迭代次数
    'min_time_step': 1e-5,          # 最小时间步长(s)
    'max_time_step': 1e-3,          # 最大时间步长(s)
    'time_step_increase_factor': 1.2,  # 时间步长增加因子
    'time_step_decrease_factor': 0.5,  # 时间步长减小因子
    'lateral_flow_under_relaxation': 0.7,  # 横向流动松弛因子
    'pressure_under_relaxation': 0.8,      # 压力松弛因子
    'void_fraction_under_relaxation': 0.6  # 空泡率松弛因子
}

# 热力学参数
THERMAL_PARAMS = {
    'wall_heat_flux': 1.2e6,  # 壁面热流密度 (W/m²)
    'critical_heat_flux': 3.5e6,  # 临界热流密度 (W/m²)
}

# 横向流动参数
LATERAL_FLOW_PARAMS = {
    'form_loss_coefficient': 0.5,  # 横向流动形状损失系数
    'mixing_coefficient': 0.02,    # 湍流混合系数
    'crossflow_resistance': 0.5,   # 横向流动阻力系数
}

# 输出控制参数
OUTPUT_PARAMS = {
    'print_frequency': 100,  # 打印频率（每隔多少步输出一次）
    'save_frequency': 1000,  # 保存频率（每隔多少步保存一次）
    'output_directory': 'output',  # 输出目录
}

# 材料属性
MATERIAL_PARAMS = {
    'fuel_conductivity': 3.6,  # 燃料导热系数 (W/m·K)
    'clad_conductivity': 16.0,  # 包壳导热系数 (W/m·K)
    'gap_conductance': 10000,   # 间隙导热系数 (W/m²·K)
} 